/**
 * @author benny.zheng
 * @data 2016-06-06
 * @description 本文件用于方便复制粘贴UI模块之用，请更新这里的说明
 *              另外，考虑到一般是放在js/src/pages/page-name/main.js，因此使用../../
 *              如果不是这个目录，请更改成正确的相对路径
 */
//----------------require--------------

var viewport = require("mlib/dom/viewport"); // viewport
var base = require("mlib/comp/base"); // 基础对象
var parseModule = require("mlib/dom/parseModule"); // 页面模块自动解析
var wechat = require("../plugin/wx/wx-api");

var ajax = require("mlib/io/ajax");
var virtualLink = require("mlib/util/virtualLink");
var follow = require("../public/js/follow");
var round = require("../plugin/util/round");
var date = require("../plugin/util/date");
var closest = require("mlib/dom/closest");

var Confirm = require("../layer/weuiconfirm");
var Alert = require("../layer/weuialert");
var Dialog = require("../layer/dialog");
var touch = require("mlib/evt/touch");


var render = require("./main.ejs"); // 页面总模板
var cardRender = require("./card-main.ejs"); // 页面总模板




module.exports = function(node, opts) {
    //-----------声明模块全局变量-------------
    var nodeList = null; // 存储所有关键节点
    var that = base();
    var data = null;

	var searcharr = location.search.match(/unpay=(\d+)/);
	var unpaystr = searcharr ? "&unpay="+searcharr[1] : "";
    var loadobj = null;
    var listelem = null;
    var scrollelem = null;
    var detaildata = null;
    var m_detail = null;
    var m_dialog = null;
	var statusCode = {
		"NORMAL":"use",
		"FREEZE":"invalid",
		"CONSUMED":"used",
		"EXPIRE":"invalid",
		"GIFTING":"donationing",
		"GIFT_SUCC":"donationed",
		"GIFT_TIMEOUT":"invalid",
		"UNAVAILABLE":"invalid"
	};
    var invalidCode = {
        "NORMAL":"未使用",
        "FREEZE":"已失效",
        "CONSUMED":"已使用",
        "EXPIRE":"已过期",
        "GIFTING":"转赠中",
        "GIFT_SUCC":"已转赠",
        "DELETE":"已删除",
        "GIFT_TIMEOUT":"券超时",
        "UNAVAILABLE":"无效券"
    };
    //-------------事件响应声明---------------
    var evtFuncs = {
        getVoucher:function(evt){
            follow();
        },
        viewDetail:function(evt){
            
           m_dialog = Dialog({
                title:"使用说明",
                padding:"1.4rem",
                content:m_detail
            });

           m_dialog.init();
           //m_dialog.position('center');
        },
        joinWechat:function(evt){            
            var node = closest(evt.target,"button.join-wechat"),reqUrl = node.dataset.url;
                if(node.classList.contains("disabled")){
                    return;
                }
                ajax({
                    url: reqUrl,
                    data:{},
                    method:'post',
                    onSuccess: function(result) { 
                        wechat('off').init();
                        node.classList.add("disabled");        
                        if(result.status == 1){
                            location.href = result.data.syncRouter;
                        }                        
                    },
                    onError: function(xmlHttp) {

                    }
                });
        },
        giveFriend:function(evt){
            Confirm({"content":"若24小时内无人领取，该券将重新可用。","okFn":function(){
                var node = nodeList.donation,
                reqUrl = node.dataset.url;
					if(that.isLock()) {
						return;
					}
					that.lock();
                ajax({
                    url: reqUrl,
                    data:{},
                    method:'post',
                    onSuccess: function(result) {
						that.unLock();						
                        if(result.status==1){
                            this.hide();
                            location.href = detaildata.code.donateRouter;
                        }
                      
                    }.bind(this),
                    onError: function(xmlHttp) {
						that.unLock();
                    }
                });
                 
            },"okText":"发起转赠","title":"发起转赠后，该券将不可使用"});

        }
	}

    //-------------子模块实例化---------------
    var initMod = function() { 

		virtualLink(function(evt){
			location.href = evt.target.getAttribute("data-href");
		});

		custFuncs.getDetail();
    }

    //-------------绑定事件------------------
    var bindEvents = function() {
                touch.on(document.body, 'tap', "button.join-wechat", evtFuncs.joinWechat);
                touch.on(document.body, 'tap', ".donation", evtFuncs.giveFriend);
                touch.on(document.body, 'tap', ".link-intro", evtFuncs.viewDetail);
                touch.on(document.body, 'tap', ".followme", evtFuncs.getVoucher);
	}

    //-------------自定义函数----------------
    var custFuncs = {
		    insertPname:function(){
				ajax({ 
					url: '/index.php?r=CouponApi/data/wechat&type=2',
					onSuccess: function(result) {	
						nodeList.publicName.innerHTML = result.data.publicname;
					},
					onError: function(xmlHttp) {

					}
				});
			},
    		getDetail:function(){
					ajax({
						url: data.requestAPIUrl,
						onSuccess: function(result) {
                            result.data.statusCode = statusCode;
                            result.data.invalidCode = invalidCode;
                            if((data.style == "card") || (data.style == "list2")){
                                document.body.insertAdjacentHTML('AfterBegin', cardRender(result.data));
                            }else{
                                document.body.insertAdjacentHTML('AfterBegin', render(result.data));
                            }
                          
                            detaildata=result.data;
                            m_detail = detaildata.explain;
                            // 找到所有带有node-name的节点
                            nodeList = parseModule(node);

							if(nodeList.publicName){
								custFuncs.insertPname();
							} 
                           if(detaildata.canShared==1){
                                wechat('open',{
                                    "title":"您的朋友分享给您一张优惠券",
                                    "link":location.origin + detaildata.code.shareRouter,
                                    "imgUrl":data.imgDomain +"/weixin/couponLog.jpg",
                                    "desc":detaildata.title,
                                    "success":function (res) {
                                        ajax({
                                            url:decodeURIComponent(detaildata.code.shareSuccessRouter),
                                            onSuccess: function(result) {

                                            },
                                            onError: function(xmlHttp) {

                                            }
                                        });
                                 
                                    }
                                }).init();
                           }else{
                                wechat('off').init();
                           }
						},
						onError: function(xmlHttp) {

						}
					});
    		}

    }

    //-------------一切从这开始--------------
    var init = function(_data) {

        data = _data;


        // 子模块实例化
        initMod();
        // 绑定事件
        bindEvents();


    }

    //---------------暴露API----------------
    that.init = init;

    return that;
};